home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Disk Of The Month 26.adf / Doc-Files / Graphics.Doc < prev    next >
Text File  |  1988-06-19  |  12KB  |  312 lines

  1.  
  2. Graphics Docs
  3. This file includes Documentation for all files in the Graphics Drawer. They 
  4. have all been combined into one to save disk space.
  5.  
  6. The Docs included in this file are:
  7. Amiga Plot
  8. ScrollBench
  9. CCFlip
  10. SFlip
  11.  
  12. Doc File Headers are in RED!
  13.  
  14.  ****************************************************************************   
  15.  
  16.             Amiga Plot V1.3a Joe Martin 7/88  (C)Copyright 1988
  17.  
  18.     This program is not public domain. All rights retained. Permision is
  19. granted to freely distribute this program as long as all documentation and
  20. notices remain intact. Charges for such distribution are NOT permitted except
  21. as a nominal disk charge !! 
  22.     
  23.  If you find this program useful, entertaining or educational, please donate
  24. $20 to the author. Source code is available for an additional $20 by sending
  25. check or money order to the address provided below. Donations will encourage
  26. updates and more features.
  27.  
  28. ****************************************************************************
  29.  
  30.  
  31. Amiga Plot is a three dimesional mathematical function plotter.It takes
  32. a function, derived by the user, parses it into a partially compiled form and
  33. then calculates coordinates to be placed in the xyz system. AmigaPlot use
  34. hidden line removal based on a principle known as the painters algorithm. 
  35. Each time AmigaPlot goes to the screen it places a filled polygon. Starting
  36. from the most distant part of the plot it is constantly placing filled
  37. polygons in front of other polygons there by covering the hidden portions of
  38. the plot. Many aspects of the plot are user variable so that almost any
  39. combination of rotations, perspectives, and parameters for any function can
  40. produce infinite results. AmigaPlot is not intended for statistical analysis
  41. and the precision of the plot or its scale are not guaranteed.
  42.     The use of color in the plot can produce very pleasing effects
  43. especially when a feathered pallet is used. The idea of AmigaPlot is to
  44. provide an artistic approach to the sometimes dry subjects of Analytical
  45. Geometry and Trigonometry.
  46.  
  47.  
  48.     AmigaPlot was compiled on the Aztec C Compiler 3.6a
  49.     **** Minimum memory 512K - it uses most of it *****
  50.     ************ 1 or 2 meg recommended **************
  51.  
  52.  
  53. ****************************************************************************
  54.  
  55. known bugs:
  56.  
  57.     1-some functions can produce values out of range.
  58.     2-extreme values can burden the Amiga clipping routines by requiring 
  59.         more chip memory than is available ! 
  60.         (I've tried to help them out a little)
  61.     3-Rotations approaching 90 degrees will give distorted results(not 
  62.         really a bug)
  63.     I'm working on better error checking but it'll be slow to come.
  64.     The Parser does very little error checking right now so watch your
  65.         spelling on trig function names.
  66.  
  67. ****************************************************************************
  68.  
  69. 1.3a 
  70.     -Fixed bug in file requestor that didn't follow paths correctly.
  71.     -Loads in special Images for windows etc.(3.6a would have booted me out 
  72.      of small data otherwise.
  73.     -User friendly rotation parms(degrees) and smoothing parms(xincr and
  74.         yincr).
  75.         
  76. ****************************************************************************
  77.  
  78. 1.3 additions:
  79.  
  80.     1- save/load parameters and IFF support.
  81.     2- macro capability in function window.
  82.     3- sample functions(parms directory).
  83.     4- increased color span resolution to include floating point.
  84.     5- cosmetic window update.
  85.  
  86. Let's get to it !
  87.  
  88. ********** First MAKE SURE YOUR STACK IS SET TO AT LEAST 20000 *************
  89.  
  90. AmigaPlot is initialized at the CLI by 'Run Plot' (don't forget to set stack
  91.                             20000 first !)
  92.  
  93.     For convenience, the directory 'parms' is included and includes numerous
  94. function examples. These can be loaded from the 'Files' menu and make it
  95. extremely easy to play with and to alter different functions known to yield
  96. satisfatory results.
  97.   Also the directory 'pic' is included with one example of an Iff pic. This
  98. picture can be viewed with any showiff program.
  99.                             
  100. Three windows appear-
  101.     1- AmigaPlot window - for the plots.
  102.     2- Parms window     - gadgets to select and change parameters.
  103.     3- Function window  - for function input only.
  104.  
  105. There are three menus available for some parmameter changes, color etc.
  106.  
  107. Parms Window:
  108.  
  109. Gadgets: 
  110.     Start    starts plot
  111.  
  112.     Stop      stops plot in progress. Any parameter changes will go
  113.             into effect when the plot is restarted.
  114.  
  115.     YRot    changes perspective about the Y axis. range -90 - 90 degrees
  116.     XRot    changes perspective about the X axis. range -90 - 90 degrees 
  117.  
  118.     Object  changes depth perspective in conjuction with Image
  119.         distance from viewer to object
  120.     Image    changes depth perspective in conjuction with Object
  121.         distance from viewer to Image
  122.     
  123.     XRan    This number represents the the outside dimensions of the loop
  124.         which will provide a value for the 'X' variable in the func-
  125.                 tion. Ex XRan: 10 means a loop from -10 to 10
  126.     YRan    Dimensions the loop for the Y variable in the function
  127.  
  128.     Suggested ranges are from 25 down to 5. 
  129.  
  130.     XIncr    the step increment for the XRan loop 1 - 8
  131.     YIncr    the step increment for the YRan loop 1 - 8
  132.  
  133. Adjusting the X and Y increments will give the plot a smooth or jagged
  134. appearence on most plots. Smaller increments take a lot longer to plot(much
  135. more computing), but produce better pictures. '1' is smoothest, '8' coarsest.
  136.  
  137.     XTrans    this moves the center of the plot about the X axis
  138.     YTrans    this moves the center of the plot about the Y axis
  139.  
  140.     ScX    this will adjust the width of the plot by the Scale factor
  141.     ScY    this will adjust the height of the plot by the Scale factor
  142.  
  143.  
  144. Function Gadgets:
  145.  
  146. There are 3 string gadgets available for function input:
  147.  
  148.     f(x,y): this gadget is for entry of main function. Upper and lower case 
  149.             is acceptable. Any operators, grouping sysbols, or trig function
  150.             names given below are acceptable.   
  151.  
  152.             Legal variable names : X,Y,A,B
  153.             
  154.     A=    : this gadget is useful for subfunctions and expressions and serves
  155.             as a macro for the main function f(x,y). If your main
  156.             function(f(x,y)) contains the 'A' variable, then this macro MUST
  157.             be defined in this gadget !
  158.             
  159.     B=    : this gadget is useful for subfunctions and expressions and serves
  160.             as a macro for the main function f(x,y). If your main
  161.             function(f(x,y)) contains the 'B' variable, then this macro MUST
  162.             be defined in this gadget !
  163.             
  164.     Editing : same as for any string gadget - cursor keys, del, backSp 
  165.                   etc.
  166.  
  167.     operations :      +,-,*,/ divsion by zero is trapped.
  168.                     ^ to the power of
  169.                     
  170.     grouping   :    ()
  171.     
  172.     functions  :    ABS() absolute value of
  173.                     SQRT() Square root of
  174.                     SQR() Square of
  175.                     SIN() Sine of
  176.                     ASIN() ArcSine of
  177.                     COS() Cosine of
  178.                     ACOS() ArcCosine of
  179.                     TAN() Tangent of
  180.                     ATAN() Arctangent of
  181.                     LN()  Natural Logarithm of
  182.                     LOG() Base 10 Log of
  183.                     EXP() Exponential of
  184.  
  185. Menus:
  186.  
  187. File Menu     
  188.  
  189.  Quit -            Quit AmigaPlot (bye)
  190.  save
  191.     parms -     this will save all parameters for easy retrieval. A file
  192.                 requestor will prompt you for the file name. File name
  193.                 extensions of '.parms' are recommended.. 
  194.                 
  195.     IFF -       this will save the current visible screen to an IFF format
  196.                 image. A file requestor will prompt you for the file name and
  197.                 extensions of '.pic' are recommended.
  198.  
  199.  load
  200.     parms-      this will load a set of parameters, functions, window sizes,
  201.                 color map etc. When plot is first run 'Default.parms' is
  202.                 loaded if available. If you have a favorite function. then it
  203.                 can be loaded at startup by saving its' parms as
  204.                 'Default.parms'.
  205.                 
  206. Parameters Menu -     Same as the Parms gadgets(just for convience)
  207.  
  208. Display Menu -     
  209.  
  210.  Color Map - User selects color palette
  211.  
  212.  ColorSpan - User selects color position/span(what heigth you want each color
  213.              to kick in. Decimal fractions can be entered for 
  214.                         finer color resolution.
  215.              
  216.  XHatch -    Outlines complete polygon on screen
  217.  
  218.  Spec.Parms -    Two gadgets:
  219.  
  220.       Clip TAN - This is an adjustment for the TAN function which usually 
  221.             produces very high values(out off range). You can
  222.             adjust the tops of these spikes.
  223.             
  224.     Scale/0  - This one can adjust any case of division by zero. In other
  225.         words, instead of dividing by zero(which is undefined)
  226.         you can divide by the scale value.
  227.  
  228.     
  229. ****************************************************************************
  230.  
  231.     Here are some sample functions :
  232.  
  233. 1) COS((X^2+Y^2)/10)
  234.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  235.  
  236. 2) 2*SIN((X^2-Y^2)/10)
  237.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  238.  
  239. 3) .005*((X/Y)^2-(Y/X)^2)
  240.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  241.  
  242. 4) 3*SIN(-.05*(X^2-Y^2))-2*COS(.1*(X^2+Y^2))
  243.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  244.  
  245. 5) 4*(5*EXP(-(X^2+Y^2)/60)*SIN((X^2-Y^2)/10))
  246.    Object:130    Image:750      XRange:20    YRange:20    XYIncr:.5
  247.  
  248. 6) TAN((X^2+Y^2)/50)
  249.    Object:80    Image:750      XRange:12    YRange:12    XYIncr:.5
  250.  
  251.  
  252.         **** Have Fun ****
  253.  
  254. ****************************************************************************
  255.     
  256.  
  257.                                ScrollBench
  258.  
  259.                       Public Domain 1988  Greg Searle
  260.      Here's an interesting toy.  This will turn your Workbench screen into a
  261. low-resolution, scrolling screen.  This is useful if you get tired of
  262. flickering interlace, or if you are using tiny fonts to make more space.
  263. When active, this will maintain the Workbench at low-resolution, scrolling
  264. the screen under the mouse pointer as the mouse moves.  Restore the screen
  265. by closing the "ScrollBench" window.
  266.  
  267.      Warning:  If you are using an interlaced Workbench, don't use the
  268. dragbar!  This is a bug that I must research.  Pulling the screen down will
  269. risk making parts inaccessable, including the ScrollBench window's close
  270. box.  This program is somewhat a hack, but it behaves pretty well.
  271.  
  272.      Since the screen is low-res, the video chip will allow more bitplanes
  273. and will not compete as much for the bus.  For example, you may use both
  274. WBKaleidoscope and Dropshadow at the same time.
  275.  
  276.      Workbench will behave normally under this program, with the exception
  277. of the automatic scrolling.  Remember that dragged items may not be wholly
  278. visible as you move them.
  279.                                  - Have Fun!
  280.  
  281. ****************************************************************************
  282.    
  283.                                 CFlip & SFlip
  284.  
  285. CFlip
  286.     Here's Yet Another Screen Hack I wrote in a moment of boredom.
  287. Type "Cflip", and observe. Try typing a few other commands, like "list".
  288. Type "Cflip" again to restore (or do anything which affects screen
  289. ordering/position (e.g. Left-Amiga-N)).
  290.  
  291.     For some reason or other this doesn't work reliably if you have more
  292. than the Workbench screen open. It won't crash the machine, but it won't
  293. have the desired effect.
  294.  
  295.                 - William Rucklidge
  296.                   rucklidg@svax.cs.cornell.edu
  297. SFlip
  298. I couldn't resist!  After seeing "tilt", I had to do it (took 2 hours.)
  299. This one is written in assembly language (828 bytes!), and the source code
  300. is included.  Slower than tilt or melt because of pixel manipulation.
  301. This should be instructive for those learning assembly.  ---Mike
  302.  
  303. AMIGA FLIP WORKBENCH SILLY GURU-LIKE EFFECT
  304.  
  305.